#include"AVLtree.hh"
#include"RBTree.hh"
#include"set.hh"
#include"map.hh"
#include<ctime>
#include<cstdlib>

//void TestAVLTree()
//{
//	//int a[] = { 16,3,7,11,9,26,18,14,15 };
//	//cout << sizeof(a)/sizeof(a[0]) << endl;
//	int a[] = { 4 ,2,6,1,3,5,15,7,16,14 };
//	AVLTree<int, int> t;
//	for (auto e : a)
//	{
//		t.Insert(make_pair(e, e));
//	}
//	t.Inorder();
//	cout << t.IsBalance() << endl;
//}
//void TestRBTree()
//{
//	srand((unsigned long)time(0));
//	int a[1000];
//	for (int i = 0; i < 1000; i++)
//	{
//		a[i] = rand();
//	}
//	//int a[] = { 16,3,7,11,9,26,18,14,15 };
//	RBTree<int, int> t;
//	for (auto e : a)
//	{
//		t.Insert(make_pair(e, e));
//	}
//	t.Inorder();
//	cout << t.IsValidRBTree() << endl;
//}
void test_set()
{
	set<int> s;
	s.Insert(1);
	s.Insert(3);
	s.Insert(79);
	s.Insert(23);
	s.Insert(29);
	s.Insert(22);
	s.Insert(23);
	s.Insert(2);
	set<int>::iterator it = s.begin();
	while (it != s.end())
	{
		cout << *it << " ";
		++it;
	}
	cout << endl;
}
void test_map()
{
	map<int, int> m;
	m.Insert(make_pair(1, 1));
	m.Insert(make_pair(2, 2));
	m.Insert(make_pair(3, 2));
	m.Insert(make_pair(4, 2));
	m.Insert(make_pair(9, 2));
	map<int, int>::iterator it = m.begin();
	while (it != m.end())
	{
		cout << it->first << ":" << it->second << endl;
		++it;
	}
	cout << endl;
}
int main()
{
	//TestAVLTree();
	//TestRBTree();
	//test_set();
	test_map();
	return 0;
}